|
Public Member Functions |
| | deBrushOctree () |
| | ~deBrushOctree () |
| deBoolean | AddPositions (deVec3d *VertArray, u16 NumVerts, u16 &Offset) |
| deBoolean | AddNormals (deVec3d *VertArray, u16 NumVerts, u16 &Offset) |
| deBoolean | AddVertMats (deVertMat *VertArray, u16 NumVerts, u16 &Offset) |
| deBoolean | AddPolyGetRef (deIndexedPoly *&poly) |
| deBoolean | AddPoly (deIndexedPoly *poly, u16 PosOffset, u16 NormOffset, u16 MatOffset) |
| deBoolean | GetPoly (deIndexedPoly *&poly, long PolyIndex) |
| deBoolean | RemovePoly (const deIndexedPoly *poly) |
| deBoolean | Generate () |
| deBoolean | Clear () |
| deBoolean | GetPolysInBox (const deVec3d &Min, const deVec3d &Max, deTArray< deIndexedPoly * > &PolyArray, OctNode *node=NULL) |
| deBoolean | GetAllPolys (deTArray< deIndexedPoly * > *&PolyArray) |
| deBoolean | GetPolyInfo (deIndexedPoly *poly, deVec3d *&PosArray, deVec3d *&NormArray, deVertMat *&VertMatArray) |
Private Member Functions |
| void | DestroyNode (OctNode *node) |
| deBoolean | InsertPolyIntoTree (long PolyIndex) |
| u8 | DecideChildNodes (long PolyIndex, OctNode *Node) |
| OctNode * | GetSmallestNodeForAABB (const deAABB &bbox) |
| deBoolean | InsertPolyIntoNode (long PolyIndex, OctNode *Node) |
| char | TriLineIntersect (const deIndexedPoly *T, u16 VertNum, const deVec3d &LinePt1, const deVec3d &LinePt2, deVec3d &Res, deBoolean &HitEdge) |
| deBoolean | PolyPlaneIntersect (const deVec3d &norm, const deDouble &dist, const deIndexedPoly *poly, deVec3d *&ResPair) |
| deBoolean | PolyPolyIntersect (const deIndexedPoly *p1, const deIndexedPoly *p2) |
| deBoolean | MakePlane (long PolyIndex) |
| deBoolean | MakePlane (deIndexedPoly *input) |
| deBoolean | SplitPoly (const deIndexedPoly *input, deIndexedPoly *&out1, deIndexedPoly *&out2) |
| u16 | SplitEdgePos (const HashEdge &Edge, deDouble &Percent) |
| u16 | SplitEdgeNorm (const HashEdge &Edge, const deDouble &Percent) |
| u16 | SplitEdgeMat (const HashEdge &Edge, const deDouble &Percent) |
| deBoolean | SplitAllPolys (deIndexedPoly *splitter) |
| deBoolean | AssembleVertexBuffer (IdeVertexBuffer *pVB) |
| deBoolean | AssembleVertexBufferNoNormals (IdeVertexBuffer *pVB) |
| deBoolean | TriangulateIndices (const deIndexedPoly *Poly, u16 LastVertIndex, u16 *IndexArray3) |
| void | TEST () |
Static Private Member Functions |
| char | FrontmostOctNodeCorner (const deVec3d &norm) |
| void | OctNodeCorner (const OctNode *node, const char Corner, deVec3d &vec) |
| void | OctNodeMidPoint (const OctNode *node, const char MidPoint, deVec3d &vec) |
| deBoolean | OctNodeIntersectsPlane (OctNode *node, const dePlane &plane) |
| void | OctNodeCenter (const OctNode *node, deVec3d &vec) |
Private Attributes |
| OctNode * | m_Root |
| deTList< long > | m_PolyAddList |
| deTList< long > | m_PolyRemoveList |
| deTArray< deIndexedPoly * > | m_PolyArray |
| deTArray< deTArray< OctNode * > > | m_PolyNodes |
| deTArray< deVec3d > | m_Positions |
| deTArray< deVec3d > | m_Normals |
| deTArray< deVertMat > | m_VertMats |
| dePlane | m_SplittingPlane |
| deTHashFunctor< u16, HashEdge > | m_SplitPosHash |
| deTHashFunctor< u16, HashEdge > | m_SplitNormHash |
| deTHashFunctor< u16, HashEdge > | m_SplitMatHash |